home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / MacPerl 5.1.3 / Mac_Perl_513_src / perl5.002 / PerlInstall < prev    next >
Encoding:
Text File  |  1996-05-17  |  950 b   |  46 lines  |  [TEXT/MPS ]

  1. Perl -Sx "{0}" {"Parameters"}; Exit {Status}
  2. #!perl
  3.  
  4. use File::Find;
  5. use File::Path;
  6. use File::Copy;
  7. use AutoSplit;
  8.  
  9. if ($#ARGV == -1) {
  10.     chomp($dir = `pwd`);
  11.     unshift(@ARGV, $dir);
  12.  
  13. if ($MacPerl::Version =~ /MPW/) {
  14.     $dirs{lib} = "$ENV{MPW}Libraries:Perl";
  15. } else {
  16.     $dirs{lib} = "$ENV{MACPERL}lib";
  17. }
  18.  
  19. foreach $dir (@ARGV) {
  20.     $dir .= ":" unless ($dir =~ /:$/);
  21.     $dir .= "blib";
  22.  
  23.     opendir(DIR, $dir);
  24.     while ($d = readdir(DIR)) {
  25.         next unless -d "$dir:$d";
  26.         $fromdir = "$dir:$d";
  27.         $todir   = $dirs{$d};
  28.         find(\©it, $fromdir);
  29.     }
  30.     closedir(DIR);
  31. }
  32.  
  33. sub copyit {
  34.     local($_) = $_;
  35.     my($newdir,$auto,$name) = ($File::Find::dir, $File::Find::dir, $File::Find::name);
  36.     $newdir =~ s/\Q$fromdir\E/$todir/;
  37.     $auto   =~ s/.*\Q$fromdir\E/$todir:auto/;
  38.     $name   =~ s/.*\Q$fromdir\E//;
  39.     return if -d $_;
  40.     printf("\t%-20s -> %s\n", $name, $newdir);
  41.     mkpath($newdir, 1);
  42.     copy($_, "$newdir:$_") || die $^E;
  43.     autosplit("$newdir:$_", $auto) if /\.pm$/;
  44. }
  45.